Assertions
In addition to Scala run-time assertions, you can add hardware assertions using the following syntax:
assert(assertion : Bool, message : String = null, severity: AssertNodeSeverity = Error)
Severity levels are:
Name |
Description |
---|---|
NOTE |
Used to report an informative message |
WARNING |
Used to report an unusual case |
ERROR |
Used to report an situation that should not happen |
FAILURE |
Used to report a fatal situation and close the simulation |
One practical example could be to check that the valid
signal of a handshake protocol never drops when ready
is low:
class TopLevel extends Component {
val valid = RegInit(False)
val ready = in Bool()
when(ready) {
valid := False
}
// some logic
assert(
assertion = !(valid.fall && !ready),
message = "Valid dropped when ready was low",
severity = ERROR
)
}